﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Input;

namespace BeachRunner.Menu
{
    /// <summary>
    /// Die abstracte Version einer Menüseite
    /// 
    /// Autor: OLD (Mattis Hänel)
    /// </summary>
    public abstract class Page
    {
        /// <summary>
        /// Wechselt zwischen den verschiedenen Pages
        /// </summary>
        public MenuManager menuManager;

        /// <summary>
        /// Konstruktor zum Empfangen des Menü Managers
        /// </summary>
        /// <param name="menuManager"></param>
        public Page(MenuManager menuManager)
        {
            this.menuManager = menuManager;
        }

        /// <summary>
        /// Hier gehört der Code rein der den benötigten Content wie z.B Sound und Grafik läd.
        /// </summary>
        /// <param name="contentManager">Der zu verwendende ContentManager</param>
        abstract public void LoadContent(ContentManager contentManager);

        /// <summary>
        /// Hier gehört die Logik der Seite hinein.
        /// </summary>
        abstract public void Update();

        virtual public void Init()
        {

        }

        /// <summary>
        /// Hier gehört der Code zum Zeichnen der Seite rein.
        /// </summary>
        /// <param name="spriteBatch">Das auf dem zu zeichnenden SpriteBatch</param>
        abstract public void Draw( SpriteBatch spriteBatch );
    }
}
